1 package org.thema.scriptware.dao;
2
3 import java.sql.Connection;
4 import org.thema.scriptware.dao.DdlDAO;
5
6 /***
7 * Classe que implementa o padrão DAO (Data Access Object).
8 * <br>
9 * Utiliza o conceito de Abstract Factory para construir vários tipos
10 * de fábricas de DAO, suportando diferentes tipos de implementação de
11 * armazenamento persistente.
12 *
13 * @author Eduardo M. Sasso
14 * @since Jan 12, 2004
15 */
16 public abstract class DAOFactory {
17 public static final int MYSQL = 1;
18 public static final int ORACLE = 2;
19
20 /***
21 * Método abstrato que deve ser implementado pela classe concreta
22 * @return Interface que define os métodos que devem ser
23 * implementados por todas as implementações de DAO como
24 * OracleDmlDao
25 *
26 */
27 public abstract DmlDAO getDmlDAO(Connection conn);
28
29 /***
30 * Método de gancho que deve ser implementado por todas as classes
31 * concretas para extracao de ddl de objetos do banco de dados
32 */
33 public abstract DdlDAO getDdlDAO(Connection conn);
34
35
36 /***
37 *
38 * @param whichFactory
39 * @return Uma implementação DAO concreta para a factory escolhida
40 */
41 public static DAOFactory getDAOFactory(int whichFactory) {
42 switch (whichFactory) {
43 case ORACLE :
44 return new OracleDAOFactory();
45
46
47
48
49 default :
50 return null;
51
52 }
53 }
54 }